<?php
namespace Home\Controller;
use Think\Controller;
class RegController extends Controller {
	/*
	*   注册首页
	*/
    public function index(){
        //随机取一条人类验证信息
        //D()方法是实例化模型  M()方法是实例化对象   C()方法是获取配置
        $question = D('verify')->getOneVerify();    //先去Model写一个获取人类验证信息方法的模型

        //分配变量，之后会用于输入验证答案与对应问题的匹配
        $this ->assign('question',$question);

        //引入模板
        $this->display();   //先有数据再引模板

    }
    //注册判断  流程：两次密码是否一致->人类验证->邮箱是否存在->昵称是否存在
    
    /*
    *  checkData()  注册异步数据检查
    */
    public function checkData(){
        //接收到数据后就可以进行验证判断
    	//var_dump($_POST);
    	$password = $_POST['password'];
    	$repassword = $_POST['repassword'];

    	//var_dump($password,$repassword);
    	//判断密码
        $preg = '/^[a-z1-9][\w]{6,}$/';
        if(!preg_match($preg,$password)){
        	$arr = array(
                'error'=>1,
                'info'=>'密码不合法'
        	);
            echo json_encode($arr);exit;
        }
        if($password!=$repassword){
        	$arr = array(
                'error'=>1,
                'info'=>'两次密码不一致'
        	);

        	echo json_encode($arr);   //转换为json格式
        	exit;   //密码错误不往下执行
        }


        //人类验证
        $verify = $_POST['verify'];
        if($verify != $_SESSION['answer']){
        	$arr = array(
                'error'=>1,
                'info'=>'人类验证不正确'
        	);

        	echo json_encode($arr);exit;
        }

        // var_dump($_POST['email']);
        //验证邮箱   去模型写验证邮箱和昵称的方法  这里才能调用
        if(D('user')->checkEmail($_POST['email'])){
        	$arr = array(
                'error'=>1,
                'info'=>'邮箱已存在'
        	);
        	echo json_encode($arr);exit;

        }


        //验证昵称
        if(D('user')->checkNickName($_POST['nickname'])){
        	$arr = array(
                'error'=>1,
                'info'=>'昵称已存在'
        	);
        	echo json_encode($arr);exit;

        }


        //处理数据
        $data = $_POST;  //接收所有数据

        $data['password'] = md5($password);  //对密码进行加密

        $data['create_time'] = time();       //添加一个创建时间的时间戳


        //增加用户   提交的数据写到数据库保存
        if(M('user')->add($data)){
        	$arr = array(
                'error'=>0,
                'info'=>'注册成功'
        	);
        	echo json_encode($arr);exit;
        }else{
        	$arr = array(
                'error'=>1,
                'info'=>'注册失败'
        	);
        	echo json_encode($arr);exit;
        }

    }
      
   

}